import { Utils } from '@formio/core';
const {
  flattenComponents,
  guid,
  uniqueName,
  MODEL_TYPES_OF_KNOWN_COMPONENTS,
  getModelType,
  getComponentPath,
  setComponentScope,
  resetComponentScope,
  isComponentNestedDataType,
  componentPath,
  getComponentPaths,
  componentMatches,
  getBestMatch,
  getComponentFromPath,
  getComponentValue,
  findComponents,
  eachComponentDataAsync,
  eachComponentData,
  getComponentKey,
  getContextualRowPath,
  getContextualRowData,
  componentInfo,
  eachComponent,
  eachComponentAsync,
  getComponentData,
  getComponentActualValue,
  isLayoutComponent,
  matchComponent,
  getComponent,
  searchComponents,
  removeComponent,
  hasCondition,
  parseFloatExt,
  formatAsCurrency,
  escapeRegExCharacters,
  getValue,
  getStrings,
  generateFormChange,
  applyFormChanges,
  findComponent,
  getEmptyValue,
  isComponentDataEmpty,
  isSelectResourceWithObjectValue,
  compareSelectResourceWithObjectTypeValues,
  getItemTemplateKeys
} = Utils;

export {
  flattenComponents,
  guid,
  uniqueName,
  MODEL_TYPES_OF_KNOWN_COMPONENTS,
  getModelType,
  getComponentPath,
  setComponentScope,
  resetComponentScope,
  isComponentNestedDataType,
  componentPath,
  getComponentPaths,
  componentMatches,
  getBestMatch,
  getComponentFromPath,
  getComponentValue,
  findComponents,
  eachComponentDataAsync,
  eachComponentData,
  getComponentKey,
  getContextualRowPath,
  getContextualRowData,
  componentInfo,
  eachComponent,
  eachComponentAsync,
  getComponentData,
  getComponentActualValue,
  isLayoutComponent,
  matchComponent,
  getComponent,
  searchComponents,
  removeComponent,
  hasCondition,
  parseFloatExt,
  formatAsCurrency,
  escapeRegExCharacters,
  getValue,
  getStrings,
  generateFormChange,
  applyFormChanges,
  findComponent,
  getEmptyValue,
  isComponentDataEmpty,
  isSelectResourceWithObjectValue,
  compareSelectResourceWithObjectTypeValues,
  getItemTemplateKeys
};
